/*
 * Powered By XY
 * Since 2020
 */

package com.xy.biz.uc.dao;

import com.xy.biz.uc.domain.po.PositionPO;
import com.xy.biz.uc.domain.query.PositionQuery;

import java.util.Collection;
import java.util.List;


/**
 *
 *
 * @author zgy
 * @date 2021-9-23
 */
public interface PositionDao {

    /**
     * 保存
     *
     * @param positionPO
     */
    int savePosition(PositionPO positionPO);

    /**
     * 保存多个
     *
     * @param collection
     */
    int saveAllPosition(Collection<PositionPO> collection);

    /**
     * 更新
     *
     * @param positionPO
     */
    int updatePosition(PositionPO positionPO);

    /**
     * 删除
     *
     * @param positionId
     */
    int deletePosition(Long positionId);

    /**
     * 查找一个
     *
     * @param positionId
     * @return
     */
    PositionPO getPosition(Long positionId);

    /**
     * 查找一个
     *
     * @param userId
     * @return
     */
    PositionPO getPositionByUserId(Long userId);

    /**
     * 查找多条
     *
     * @param collection
     * @return
     */
    List<PositionPO> listPositionByUserId(Collection<Long> collection);

    /**
     * 查找多条
     *
     * @param collection
     * @return
     */
    List<PositionPO> listPositionById(Collection<Long> collection);

    /**
     * 条件查找多条
     *
     * @param query 查找条件
     * @return
     */
    List<PositionPO> listPosition(PositionQuery query);

    /**
     * 条件统计个数
     *
     * @param query 查找条件
     * @return
     */
    int countPosition(PositionQuery query);

}
